package com.youdoneed.common.service;

import com.youdoneed.common.model.FileInfo;
import com.youdoneed.common.model.VideoScreenShotImg;

import org.bytedeco.javacv.FrameGrabber;
import org.springframework.web.multipart.MultipartFile;

import java.io.InputStream;
import java.util.List;

/**
 * @author Ewing
 * @since 2017-04-21
 **/
public interface FileService {

    /**
     * 根据ID获取文件信息。
     */
    FileInfo getFileInfo(String fileId);

    /**
     * 根据ID批量获取文件信息。
     */
    List<FileInfo> getFileInfos(String[] fileIds);

    /**
     * 保存文件并返回文件信息。
     */
    FileInfo saveFile(MultipartFile file);

    /**
     * 删除文件，并返回被删除的文件信息。
     */
    FileInfo deleteFile(String fileId);

    /**
     * 根据URL删除文件，并返回被删除的文件信息。
     */
    FileInfo deleteByUrl(String url);
    /**
     * 视频截帧并保存
     */
    long videoCutFrame(String videoUrl,String videoId,String musicUrl) throws FrameGrabber.Exception;
    
    /**
     * 获取视频截图
     */
    VideoScreenShotImg getVideoScreenImgs(String videoId);
}
